<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        /* 去除默认样式 */
        *{
            margin: 0;
            padding: 0;
            font-size: 黑体;
            box-sizing: border-box;
        }
        /* 内容居中 底色 */
        body{
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 100vh;
            background: #222;
        }
        /* 整体登陆盒子 */
        .box{
            position: relative;
            width: 380px;
            height: 420px;
            background: #1c1c1c;
            border-radius: 8px;
            overflow: hidden;
        }
        /* 流光 */
        .box::before {
            content: "";
            position: absolute;
            top: -50%;
            left: -50%;
            width: 380px;
            height: 420px;
            background: linear-gradient(0deg,transparent,transparent,#45f3ff,#45f3ff,#45f3ff);
            z-index: 1;
            transform-origin: bottom right;
            animation: animate 6s linear infinite;
        }  
        /* 流光 */
        .box::after {
            content: "";
            position: absolute;
            top: -50%;
            left: -50%;
            width: 380px;
            height: 420px;
            background: linear-gradient(0deg,transparent,transparent,#45f3ff,#45f3ff,#45f3ff);
            z-index: 1;
            transform-origin: bottom right;
            animation: animate 6s linear infinite;
            animation-delay: -3s;
        }
        /* 额外流光盒子 */
        .borderLine{
            position: absolute;
            top: 0;
            inset: 0;
        }
        /* 流光 */
        .borderLine::before {
            content: "";
            position: absolute;
            top: -50%;
            left: -50%;
            width: 380px;
            height: 420px;
            background: linear-gradient(0deg,transparent,transparent,#ff2770,#ff2770,#ff2770);
            z-index: 1;
            transform-origin: bottom right;
            animation: animate 6s linear infinite;
            animation-delay: -1.5s;
        }  
        /* 流光 */
        .borderLine::after {
            content: "";
            position: absolute;
            top: -50%;
            left: -50%;
            width: 380px;
            height: 420px;
            background: linear-gradient(0deg,transparent,transparent,#ff2770,#ff2770,#ff2770);
            z-index: 1;
            transform-origin: bottom right;
            animation: animate 6s linear infinite;
            animation-delay: -4.5s;
        }
        /* 动画 */
        @keyframes animate {
            0%{
                transform: rotate(0deg);
            }
            100% {
                transform: rotate(360deg);
            }
        }
        /* 登录form表单 */
        .box form {
            position: absolute;
            inset: 4px;
            background: #222;
            padding: 50px 40px;
            border-radius: 8px;
            z-index: 2;
            display: flex;
            flex-direction: column;
        }
        /* 标题 */
        .box form h2 {
            color: #fff;
            font-weight: 500;
            text-align: center;
            letter-spacing: 0.1em;
        }
        /* 输入框盒子 */
        .box form .inputBox {
            position: relative;
            width: 300px;
            margin-top: 35px;
        }
        /* 输入框 */
        .box form .inputBox input {
            position: relative;
            width: 100%;
            padding: 20px 10px 10px ;
            background: transparent;
            outline: none;
            border: none;
            box-shadow: none;
            color: #23242a;
            font-size: 1em;
            letter-spacing: 0.05em;
            transition: 0.5s;
            z-index: 10
        }
        /* username和passward文字样式 */
        .box form .inputBox span {
            position: absolute;
            left: 0;
            padding: 20px 0px 10px ;
            pointer-events: none;
            color: #8f8f8f;
            font-size: 1em;
            letter-spacing: 0.05em;
            transition: 0.5s;
        }
        /* 有效输入和获取焦点时 span上移 文字减小 */
        .box form .inputBox input:valid ~ span,
        .box form .inputBox input:focus ~ span{
            color: #fff;
            font-size: 0.75em;
            transform: translateY(-34px);
        }
        /* 白色横线 */
        .box form .inputBox i {
            position: absolute; 
            left: 0;
            bottom: 0;
            width: 100%;
            height: 2px;
            background: #fff;
            border-radius: 4px;
            overflow: hidden;
            transition: 0.5s;
            pointer-events: none;
        }
        /* 有效输入和获取焦点时  横线变高 */
        .box form .inputBox input:valid ~ i,
        .box form .inputBox input:focus ~ i{
            height: 44px;
        }
        /* 忘记密码和注册盒子 */
        .box form .links {
            display: flex;
            justify-content: space-between;
        }
        /* a链接 */
        .box form .links a {
            margin: 10px 0;
            font-size: 0.75em;
            color: #8f8f8f;
            text-decoration: none;
        }
        /* hover时忘记密码变白  注册直接白色 */
        .box form .links a:hover,
        .box form .links a:nth-child(2){
            color: #fff;
        }
        /* 登录按钮样式 */
        .box form input[type="submit"] {
            border: none;
            outline: none;
            padding: 9px 25px;
            background: #fff;
            cursor: pointer;
            font-size: 0.9em;
            border-radius: 4px;
            font-weight: 600;
            width: 100px;
            margin-top: 10px;
        }
        /* 鼠标按下时 登录按钮整体透明80% */
        .box form input[type="submit"]:active {
            opacity: 0.8;
        }
    </style>
</head>
<body>
    <!-- 结构 -->
    <div class="box">
        <!-- 另外流光 -->
        <span class="borderLine"></span>
        <!-- 登录表单 -->
        <form>
            <h2>Sign in</h2>
            <!-- username -->
            <div class="inputBox">
                <input type="text" required>
                <span>Username</span>
                <i></i>
            </div>
            <!-- password -->
            <div class="inputBox">
                <input type="password" required>
                <span>Password</span>
                <i></i>
            </div>
            <!-- 忘记密码和注册 -->
            <div class="links">
                <a href="#">Forget Password</a>
                <a href="#">Signup</a>
            </div>
            <!-- 登录按钮 -->
            <input type="submit" value="Login">
        </form>
    </div>
</body>
</html>